//***********************************************************************
//	File:		Obstacle.h
//	Author:		
//	Course:		SGP 1405
//	Purpose:	
//***********************************************************************
//***********************************************************************
//	Purposfully left blank for all comments regarding this file 
//	
//	
//	
//***********************************************************************

#pragma once
#include "Entity.h"
#include "../SGD Wrappers/SGD_Event.h"

class Emitter; 

class Obstacle :
	public Entity
{
public:
	//Trilogy
	Obstacle() = default;
	virtual ~Obstacle() = default;
	Obstacle(const Obstacle&) = default; 
	Obstacle& operator =(const Obstacle&) = default; 

	//Type
	int GetType() const { return ENT_OBSTACLE_BASE; }

	//Interface
	void Update(float dt);
	void Render(void);
	void HandleCollision(const IEntity* pOther);
	void HandleEvent(const SGD::Event* pEvent);
	SGD::Rectangle GetRect() const;

	//Accessors
	bool		GetActive			(void)	{ return m_bActive; }
	Emitter*	GetParticleEffect	(void)	{ return m_peParticleEffect; }

	//Mutators
	void SetActive			(bool a)		{ m_bActive = a; }
	void SetParticleEffect	(Emitter* pe)	{ m_peParticleEffect = pe; }

private:
	bool		m_bActive			 = false; 
	Emitter*	m_peParticleEffect; 

};

